<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/7/10
 * Time: 21:49
 */

namespace app\api\validate;

use app\lib\exception\parameterException;
use think\Exception;
use think\Request;
use think\Validate;

class BaseValidate extends Validate
{

    //所有的整个参数验证层的错误处理都集中在这里,承担了所有验证层的验证工作
    public function goCheck()
    {
        //获取http传入的参数
          //方法一:
//          $request = Request::instance();
//          $params = $request->param();
          // 方法二:
        $params = Request::instance()->param();
        //对参数进行校验
        if(!$this->batch()->check($params)){

            //优化下面的代码,实例化时调用传入参数重写parameterException下的$msg属性
            //而不用$e->msg=$this->error;这样的方式重写
            $e = new parameterException([
                'msg'=>$this->error //只改写msg 其它两个值还用原始值
            ]);

            throw $e;  //优势,只管抛出异常,异常的类型交由ExceptionHandler来判断,然后决定抛出什么样的异常

        }
        else{
            return true;
        }
    }
}